Skip to content

feat: 同步工作区新安装的 Skill 到全局仓库#185

Open
MounteZ22 wants to merge 1 commit intoErlichLiu:mainfrom
MounteZ22:main
Open

feat: 同步工作区新安装的 Skill 到全局仓库#185
MounteZ22 wants to merge 1 commit intoErlichLiu:mainfrom
MounteZ22:main

Conversation

@MounteZ22
Copy link
Copy Markdown

背景

Proma 支持多工作区,用户通常会为不同项目或场景各开一个工作区。对于许多用户——尤其是从其他 AI Agent 工具迁移过来的新用户——他们不是从零开始,可能需要在多个工作区里配置同一批 Skill。

在此之前,没有显式的跨工作区 Skill 共享机制。如果某个 Skill 在多个工作区都要用,用户只能:

  • 在每个工作区分别让 AI 去查找并安装
  • 手动进入 ~/.proma/ 目录,把 Skill 文件夹逐个复制过去

这两种方式对新用户都不友好,增加了上手成本,不利于留存。

此外,当用户在某个工作区新建了一个 Skill,也没有统一路径让它沉淀到全局、供其他工作区后续复用。

本次改动

核心能力

  • 从全局仓库安装:用户可在 Agent 设置页,将 ~/.proma/default-skills/ 中的 Skill 一键安装到当前工作区
  • 自动同步到全局仓库:当前工作区中新建的 Skill 会由文件监听器自动同步到全局仓库,无需手动操作
  • 来源元数据:为 SkillMeta 补充来源字段,区分内置 bundled Skill 与用户新建 Skill,避免不同工作区争抢覆盖同名全局 Skill

文件变更

文件 改动内容
packages/shared/src/types/agent.ts 新增 GET_GLOBAL_SKILLS / INSTALL_GLOBAL_SKILL IPC 通道常量
apps/electron/src/main/lib/agent-workspace-manager.ts 新增 getGlobalSkills() / installGlobalSkill() 函数
apps/electron/src/main/lib/workspace-watcher.ts 新增工作区新建 Skill 自动同步到全局仓库的监听逻辑
apps/electron/src/main/lib/config-paths.ts 补充全局仓库路径工具函数
apps/electron/src/main/lib/agent-prompt-builder.ts Agent 安装新 Skill 时优先落到当前工作区再由系统同步
apps/electron/src/main/ipc.ts 注册两个新 IPC handler
apps/electron/src/preload/index.ts 暴露 getGlobalSkills / installGlobalSkill 到渲染进程
apps/electron/src/renderer/components/settings/AgentSettings.tsx 新增"从全局安装"按钮与对话框,展示 Skill 来源信息

设计约定

  • 从全局复制到工作区的 Skill 视为局部副本,不反向覆盖全局,避免多工作区冲突
  • 工作区中新建的 Skill 才触发自动同步到全局仓库

验证

  • apps/electron: tsc --noEmit
  • packages/shared: tsc --noEmit
  • 手动验证:
    • 工作区新建 Skill → 全局仓库同步出现 ✅
    • 从全局仓库安装 Skill 到另一工作区 ✅
    • 设置页交互正常 ✅

邮箱:1756804740@qq.com

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant